Android JSONObject 与 GSON
全部标签 我的字符串是:"[{"property":"surname","direction":"ASC"}]"我可以让GSON反序列化它,而不添加/包装它吗?基本上,我需要反序列化一个名称-值对数组。我尝试了几种方法,但无济于事。 最佳答案 您基本上想将其表示为map列表:publicstaticvoidmain(String[]args){Stringjson="[{\"property\":\"surname\",\"direction\":\"ASC\"}]";TypelistType=newTypeToken>>(){}.getTy
我刚开始学习Java,我需要Gson用于我正在从事的新项目。我觉得我在网上找到的所有安装说明都遗漏了一些东西——它们都涉及三个jar文件,我应该能够从zip文件中提取这些文件。但是当我在github上查看Gson时,我找不到任何.jar文件!https://github.com/google/gson找到jar文件后,我应该将它们包含在我正在处理的项目的构建路径中,对吗?我正在使用Eclipse处理这个项目。谁能帮我做一个非常简单的分步说明,说明如何开始包含这些库,让像我这样的编程新手能够完全掌握这些库?此外,一旦我将.jar文件包含在项目的构建路径中,我是否可以只调用这些函数?
我需要使用Gson输出枚举值,由于客户端限制,它需要小写。例如CLOSE_FILE将是close_file。有没有简单的方法来做到这一点?我已经看过制作一个实现JsonSerializer的类,但看起来我必须手动序列化整个类(这非常复杂)是这种情况吗? 最佳答案 如果您可以控制enum类型,请使用@SerializedName注释其成员并为其提供适当的序列化值。例如,enumAction{@SerializedName("close_file")CLOSE_FILE;}如果您无法控制enum,请在创建Gson实例时提供自定义Type
我有方法必须检查JSON是否有效,在HowtocheckwhetheragivenstringisvalidJSONinJava上找到但它不起作用。publicstaticbooleanisJson(StringJson){Gsongson=newGson();try{gson.fromJson(Json,Object.class);returntrue;}catch(com.google.gson.JsonSyntaxExceptionex){returnfalse;}}如果我对某些字符串使用此方法,它总是返回true。例如:System.out.println(renderHtml
以下方法发送JSON回复。但是在接收端,我不断收到无效字符,并且UTF-8没有解码数据。我做错了什么?响应客户端=数据输出流//GettheclientrequestclientRequest=newBufferedReader(newInputStreamReader(connectedClient.getInputStream()));//connectedclient=socket//StartresponseobjectresponseToClient=newDataOutputStream(connectedClient.getOutputStream());/***Send
我想构建一个灵活的api,我没有用户可以通过的明确的大小写敏感性,因此GSON必须能够在区分大小写的情况下反序列化它。{"firstName":"Juan"}{"firstname":"Juan"}{"Firstname":"Juan"}...如何将这些字段反序列化为我的Foo的名字?publicclassFoo{privateStringfirstName;//..getters}我尝试使用FieldNamingPolicy,但没有用。newGsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).s
我有几个包含彼此递归依赖的类,我使用GsonGraphAdapterBuilder将它们序列化为JSON格式,并且它运行良好。现在我想将它们反序列化为相同的结构,但不知道如何做。我举了个例子:classClassA{publicintfield;publicClassBparent;publicClassA(intf,ClassBp){field=f;parent=p;}}classClassB{publicVectorvector=newVector();}...ClassBb=newClassB();ClassAa1=newClassA(1,b);ClassAa2=newClass
我有这段代码:publicabstractclassRepository{...publicvoidreadFromJson(){Stringcontent="JSONcontenthere";Gsongson=newGson();TypeentityType=newTypeToken>(){}.getType();jsonObject=gson.fromJson(content,entityType);for(Entityent:jsonObject.getEntities());}}当我尝试执行foreach时,我的实体对象不再是Entity类型,而是LinkedHashMap类型
我有一个HashMap,其中值字符串可以是long或double。例如,123.000可以存储为123(长期存储)和123.45作为123.45(双)。获取这两个HashMap值:("one","123");("two","123.45")当我将上面的映射转换成JSON字符串时,JSON值不应该有双引号,比如Expected:{"one":123,"two":123.45}Actual:{"one":"123","two":"123.45"}下面是我的代码:StringjsonString=newGson().toJson(map)我更喜欢使用GSON的解决方案,但也欢迎使用其他库。
我有这个json字符串,我需要将其反序列化为map:map"players_test":[{"54231f85f8e049c7bd8ac0aba3d1caf7":{"uuid":"54231f85f8e049c7bd8ac0aba3d1caf7","name":"TomShar","signup_time":"2014-07-0416:27:16"}},{"54231f85f8e049c7bd8ac0aba3d1caf7":{"uuid":"54231f85f8e049c7bd8ac0aba3d1caf7","name":"TomShar","signup_time":"2014-07